package com.mayuanfei.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

/**
 * TODO 类描述
 *
 * @author 老马
 * @date 2025-04-03 13:32
 */
@Getter
@AllArgsConstructor
public enum PayTypeEnum {
    /**
     * 微信支付
     */
    WECHAT(1,"微信支付"),
    /**
     * 支付宝支付
     */
    ALIPAY(2, "支付宝支付");

    private final Integer code;
    private final String info;

    /**
     * 支付类型枚举映射表，用于快速查找对应的支付类型枚举。
     */
    private static final Map<Integer, PayTypeEnum> PAY_TYPE_ENUM_MAP = Arrays.stream(values())
            .collect(Collectors.toMap(PayTypeEnum::getCode, Function.identity()));

    /**
     * 根据支付类型代码获取对应的支付类型枚举。
     *
     * @param code 支付类型代码，用于匹配枚举中的代码值。
     * @return 返回与代码匹配的支付类型枚举，如果未找到匹配的枚举则返回 null。
     */
    public static PayTypeEnum getPayTypeEnum(Integer code) {
        return PAY_TYPE_ENUM_MAP.get(code);
    }

}
